ABAP根据输入表动态展示

您所在的位置:网站首页 abap at new用法 ABAP根据输入表动态展示

ABAP根据输入表动态展示

2023-07-08 22:58| 来源: 网络整理| 查看: 265

REPORT ztest_0018. *TYPE-POOLS:abap. *PARAMETERS p_name TYPE tabname. *DATA: d_ref      TYPE REF TO data, *      lt_alv_cat TYPE TABLE OF lvc_s_fcat, *      ls_alv_cat LIKE LINE OF lt_alv_cat. * *DATA: lt_table LIKE TABLE OF dntab. *DATA: ls_table TYPE dntab. * *FIELD-SYMBOLS :  TYPE table, *                    TYPE any, *                 TYPE any. **取出表结构的字段目录 *CALL FUNCTION 'NAMETAB_GET' *  EXPORTING *    langu          = sy-langu *    tabname        = p_name *  TABLES *    nametab        = lt_table *  EXCEPTIONS *    no_texts_found = 1. **根据取出的字段目录生成参考字段目录 *LOOP AT lt_table INTO ls_table. *  ls_alv_cat-fieldname = ls_table-fieldname. *  ls_alv_cat-ref_table = p_name. *  ls_alv_cat-ref_field = ls_table-fieldname. *  APPEND ls_alv_cat TO lt_alv_cat. *  CLEAR ls_alv_cat. *ENDLOOP. **内表创建 *CALL METHOD cl_alv_table_create=>create_dynamic_table *  EXPORTING *    it_fieldcatalog = lt_alv_cat *  IMPORTING *    ep_table        = d_ref. **指定生成的内表到字段符号 *ASSIGN d_ref->* TO . **从动态表中取数到动态内表中 *SELECT * INTO CORRESPONDING FIELDS OF TABLE  UP TO 100 *ROWS FROM (p_name). **显示内表中的数据 *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' *  EXPORTING *    i_structure_name = p_name *  TABLES *    t_outtab         =  *  EXCEPTIONS *    program_error    = 1 *    OTHERS           = 2. *IF sy-subrc  0. *  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno *  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. *ENDIF. PARAMETERS p_name TYPE tabname. DATA: dyn_table TYPE REF TO data. DATA: dyn_wa TYPE REF TO data. FIELD-SYMBOLS:  TYPE table,  TYPE any. *创建动态表结构 CREATE DATA dyn_table TYPE TABLE OF (p_name). *创建动态内表 ASSIGN dyn_table->* TO . *创建动态工作区结构 CREATE DATA dyn_wa LIKE LINE OF . *创建动态工作区 ASSIGN dyn_wa->* TO . *从动态表中取数到动态内表中 SELECT * INTO CORRESPONDING FIELDS OF TABLE  UP TO 100 ROWS FROM (p_name). *对取出数据进行处理 LOOP AT  ASSIGNING .   "内表数据处理 ENDLOOP. *显示内表中的数据 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'   EXPORTING     i_structure_name = p_name   TABLES     t_outtab         =    EXCEPTIONS     program_error    = 1     OTHERS           = 2. IF sy-subrc  0.   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3